package com.chinairi.mall.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.chinairi.mall.model.ServiceShelf;
import com.chinairi.mall.service.modelobject.HomeServiceMO;
import com.chinairi.mall.service.modelobject.ServiceTypeShopMO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 五大服务上架功能以及服务商对服务的维护功能， Mapper 接口
 * </p>
 *
 * @author Webgasd
 * @since 2020-09-16
 */
public interface ServiceShelfMapper extends BaseMapper<ServiceShelf> {
    /**
     * 根据店铺主键获取店铺中的服务产品信息
     * @param serviceShelf 店铺主键
     * @return list
     */
    List<ServiceShelf> getListByCsDbId(@Param("serviceShelf") ServiceShelf serviceShelf);

    /**
     * 根据主键获取具体服务商品信息
     *
     * @param serviceDbId 主键
     * @return ServiceShelfVO
     */
    ServiceShelf getByDbId(@Param("serviceDbId") String serviceDbId);

    /**
     * 根据服务大类获取店铺id的list
     * @param serviceType
     * @param serviceClass
     * @return
     */
    List<String> getCsDbIdListByServiceType(@Param("serviceType") String serviceType, @Param("serviceClass") String serviceClass);

    /**
     * 根据店铺id获取提供的服务商品（已上架）
     * @param dbIdList
     * @return
     */
    List<ServiceTypeShopMO> getServiceInfoListByCsDbIdList(@Param("dbIdList") List<String> dbIdList);

    /**
     * 批量提交商品审核
     * @param serviceShelfList
     */
    void batchUpdateStatus(@Param("list") List<ServiceShelf> serviceShelfList);

    /**
     * 服务商品搜索列表
     * 搜索项
     * csDbid               精确搜索   店铺id
     * ssServiceTypeDbid    精确搜索   服务大类编码
     * ssServiceTypeName    模糊搜索   服务大类名称
     * ssServiceClassDbid   精确搜索   服务小类编码
     * ssServiceClassName   模糊搜索   服务小类名称
     * @param homeServiceMO
     * @param userId
     * @return
     */
    List<HomeServiceMO> selectHomeService (@Param("search") HomeServiceMO homeServiceMO, @Param("userId") String userId);

    /**
     * 获取店铺服务列表
     * @param serviceShelf
     * @return
     */
    List<ServiceShelf> getServiceListByCsDbId(@Param("search") ServiceShelf serviceShelf);

    /**
     * 获取已上架的服务数量
     * @param csDbid
     * @return
     */
    Integer countAlreadyServiceNum(@Param("csDbid") String csDbid);

    /**
     * 获取用户须知
     * @param serviceType 服务大类id
     * @param serviceClassIds 服务小类id
     */
    List<ServiceShelf> getNoticeByCsId(@Param("serviceType") String serviceType, @Param("serviceClassIds") List<String> serviceClassIds);

    /**
     * 获取用户须知
     * @param serviceType 服务大类id
     * @param serviceClassIds 服务小类id
     */
    List<ServiceShelf> getPriceRuleByCsId(@Param("serviceType") String serviceType, @Param("serviceClassIds") List<String> serviceClassIds);
}
